package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.VO.operate.OperateDeviceOpenTypeVO;
import com.itlong.cloud.POJO.VO.operate.OperateUserRecordVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      运营-APP用户-业主通行记录资源数据访问接口。
 * <desc/>
 *
 * @createDate 2017/9/26.
 */
@Mapper
@Repository
public interface IOperateUserRecordDao extends IAbstractBaseDao<OperateUserRecordVO> {


    /**
     * <desc>
     *      获取门禁通行记录列表(三个月内)。
     * <desc/>
     *
     * @param  params
     * @return  返回门禁通行记录列表信息
     * @author shengen.T
     * @createDate 2017/9/25
     */
    List<OperateUserRecordVO> getEntranceRecordList(Map<String,Object> params);

    /**
     * <desc>
     *      门禁获取分页总数量(三个月内)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author shengen.T
     * @createDate 2017/09/26
     */
    Integer getEntranceRecordCount(Map<String,Object> params);

     /**
      * <desc>
      *     获取电梯通行记录列表(三个月内)。
      * <desc/>
      *
      * @param  params
      * @return  返回电梯通行记录列表信息
      * @author shengen.T
      * @createDate 2017/9/26
      */
    List<OperateUserRecordVO> getElevatorRecordList(Map<String,Object> params);


    /**
     * <desc>
     *      门禁获取分页总数量(三个月内)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author shengen.T
     * @createDate 2017/09/26
     */
    Integer getElevatorRecordCount(Map<String,Object> params);

    /**
     * <desc>
     *     获取云对讲通行记录列表(三个月内)。
     * <desc/>
     *
     * @param  params
     * @return  返回云对讲通行记录列表信息
     * @author shengen.T
     * @createDate 2017/9/26
     */
    List<OperateUserRecordVO> getCloudIntercomRecordList(Map<String,Object> params);


    /**
     * <desc>
     *      门禁获取分页总数量(三个月内)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author shengen.T
     * @createDate 2017/09/26
     */
    Integer getCloudRecordCount(Map<String,Object> params);



    /**
      * <desc>
      *      获取通行方式列表。
      * <desc/>
      *
      * @param recType
      * @return 返回通行方式列表
      * @author shengen.T
      * @createDate 2017/10/31
      */
    List<OperateDeviceOpenTypeVO> getOpenTypeList(@Param("recType") Integer recType);

    /**
     * <desc>
     *     获取电梯通行记录列表(三个月前)。
     * <desc/>
     *
     * @param  params
     * @return  返回电梯通行记录列表信息
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    List<OperateUserRecordVO> getElevatorRecordListByHistory(Map<String,Object> params);

    /**
     * <desc>
     *      电梯获取分页总数量(三个月前)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    Integer getElevatorRecordCountByHistory(Map<String,Object> params);

    /**
     * <desc>
     *      获取门禁通行记录列表(三个月前)。
     * <desc/>
     *
     * @param  params
     * @return  返回门禁通行记录列表信息
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    List<OperateUserRecordVO> getEntranceRecordListByHistory(Map<String,Object> params);

    /**
     * <desc>
     *      门禁获取分页总数量(三个月前)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    Integer getEntranceRecordCountByHistory(Map<String,Object> params);

    /**
     * <desc>
     *     获取云对讲通行记录列表(三个月前)。
     * <desc/>
     *
     * @param  params
     * @return  返回云对讲通行记录列表信息
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    List<OperateUserRecordVO> getCloudIntercomRecordListByHistory(Map<String,Object> params);


    /**
     * <desc>
     *      云对讲获取分页总数量(三个月前)
     * </desc>
     *
     * @param params 查询参数
     * @return 总数量
     * @author Juguang.S
     * @createDate 2020/06/23
     */
    Integer getCloudRecordCountByHistory(Map<String,Object> params);
}
